<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>高阶函数</title>
</head>
<body>
  
</body>

<script>
  
  // 需求 存在一个数组，数组元素都是表示人的对象，我们想从数组中选出年纪最大的人。
  function maxBy(arr, iteratee) {
    let values = [];
    if(typeof iteratee === 'string') {
      values = arr.map(item => item[iteratee])
    } else if (typeof iteratee === 'function') {
      console.log(iteratee, '我是函数')
      values = arr.map((item, index) => {
        return iteratee(item, index, arr)
      })
    }
  }


  // 调用
  var list = [
    {name: '小明', age: 18},
    {name: '小红', age: 22},
    {name: '小李', age: 25},
  ]
  // 1. 求年龄最大值
  var maxItem = maxBy(list, 'age')
  // 2. 求自定义函数

  let a = maxBy(list, function(item){
    const { priority } = item
    const priorityValue = priority === 'low' ? 1 : priority === 'middle' ? 2 : priority === 'high' ? 3 : 0
    return priorityValue;
  })

  console.log(a)

</script>
</html>